package la.iok.hzsvn.lewin.movie.cloud.mapper;

import la.iok.hzsvn.lewin.movie.cloud.entity.Device;
import la.iok.hzsvn.lewin.mybatis.mapper.BaseMapper;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.Nullable;

import java.util.Collection;
import java.util.List;

public interface DeviceMapper extends BaseMapper<Device> {
    /**
     * 更新名称或者房间id或者组织id
     * @param id 设备id
     * @param name 名称
     * @param roomId 房间id，可能为0，表示不属于任何房间
     * @param orgUnitId 组织id.只有管理员才能修改，并且修改的时候一定要同时修改房间id
     */
    void update(@NotNull Long id, @Nullable String name,@Nullable Long roomId,@Nullable Long orgUnitId);

    /**
     * 查询设备
     * @param orgUnitIds 店铺id集合，可能为null,表示所有店铺。如果不为null,也不能为空
     * @param roomId 房间id,如果非空则只查询此房间的设备
     * @param name 设备名称，模糊查询
     * @return 设备列表
     */
    List<Device> list(Collection<Long> orgUnitIds, Long roomId, String name);
}
